﻿Imports Negocio
Public Class frmDetallePedido

    Dim servicio1 As New DocumentoClienteBultoNegocio
    Dim servicio2 As New DocumentoClienteNegocio

    Dim r As New rptEmbalaje

    Sub iniciar()
        txtBulto.Focus()
    End Sub

    Private Sub frmDetallePedido_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        iniciar()
    End Sub

    Function verificarEstado() As Boolean
        Dim valor As Boolean = False
        Dim ds As DataSet = servicio2.obtenerEstadoPedido(txtPedido.Text)
        If ds.Tables(0).Rows(0)("DCI_Estado").ToString.Trim = "08" Then
            valor = True
        End If

        Return valor
    End Function

    Sub mensaje(ByVal men As String)
        MsgBox(men, MsgBoxStyle.Information, "Mensajes al Usuario")
    End Sub

    Sub listarBultosPedido(codPedido As String)
        Dim ds As DataSet = servicio1.listarBultosXPedido(codPedido)

        dgvBultos.DataSource = ds.Tables(0)

        If dgvBultos.RowCount <> 0 Then
            dgvBultos.Rows(0).Selected = False
        End If
    End Sub

    Sub listarArticulosLargos(codPedido As String)
        Dim ds As DataSet = servicio1.listarArticulosLargos(codPedido)

        dgvLargos.DataSource = ds.Tables(0)

        If dgvLargos.RowCount <> 0 Then
            dgvLargos.Rows(0).Selected = False
        End If
    End Sub

    Sub mostrarTotales()
        Dim acumulador1 As Integer = 0
        Dim acumulador2 As Integer = 0
        Dim acumulador3 As Integer = 0
        Dim acumulador4 As Integer = 0
        For Each fila As DataGridViewRow In dgvBultos.Rows
            acumulador1 = acumulador1 + CInt(fila.Cells("Column5").Value)
            acumulador2 = acumulador2 + CInt(fila.Cells("Column6").Value)
            acumulador3 = acumulador3 + CInt(fila.Cells("Column7").Value)
        Next
        For Each fila As DataGridViewRow In dgvLargos.Rows
            acumulador4 = acumulador4 + CInt(fila.Cells("Column4").Value)
        Next
        lblTotal1.Text = acumulador1
        lblTotal2.Text = acumulador2
        lblTotal3.Text = acumulador3
        lblTotArt.Text = acumulador4
    End Sub

    Sub mostrarRuta()
        lblZona.Text = servicio1.obtenerRutaCliente(txtPedido.Text)
    End Sub

    Sub limpiarTotales()
        lblZona.Text = ""
        lblTotal1.Text = "0"
        lblTotal2.Text = "0"
        lblTotal3.Text = "0"
        lblTotArt.Text = "0"
    End Sub

    Private Sub txtBulto_KeyPress(sender As Object, e As System.Windows.Forms.KeyPressEventArgs) Handles txtBulto.KeyPress
        If e.KeyChar = ChrW(Keys.Enter) Then
            'Dim posicion1 As Integer = InStr(1, txtBulto.Text.Trim, ".")
            'If posicion1 > 0 Then
            'Dim posicion2 As Integer = InStr(posicion1 + 1, txtBulto.Text.Trim, ".") - 1
            'If posicion2 > 0 Then
            Dim codigoPedido As String = txtBulto.Text.Trim.Substring(0, 7)
            Dim ds As DataSet = servicio2.obtenerEstadoPedido(codigoPedido)
            txtPedido.Text = codigoPedido
            txtObservaciones.Text = ds.Tables(0).Rows(0)("DCI_Observaciones").ToString.Trim
            If verificarEstado() = True Then
                btnCelda.Enabled = True
            End If
            mostrarRuta()
            listarArticulosLargos(txtPedido.Text)
            listarBultosPedido(txtPedido.Text)
            mostrarTotales()
            'End If
            'Else
            '    txtPedido.Text = ""
            '    listarArticulosLargos(txtPedido.Text)
            '    listarBultosPedido(txtPedido.Text)
            '    limpiarTotales()
            'End If
        End If
    End Sub

    Private Sub btnLimpiar_Click(sender As System.Object, e As System.EventArgs) Handles btnLimpiar.Click
        txtPedido.Text = ""
        txtObservaciones.Text = ""
        listarArticulosLargos(txtPedido.Text)
        listarBultosPedido(txtPedido.Text)
        txtBulto.Text = ""
        txtBulto.Focus()
        limpiarTotales()
    End Sub

    Private Sub btnCelda_Click(sender As System.Object, e As System.EventArgs) Handles btnCelda.Click
        servicio2.actualizarEstadoPedido(txtPedido.Text, "09", "P")
        servicio2.actualizarFechaInicioCelda(txtPedido.Text, "P")
        mensaje("El pedido se actualizó correctamente.")
        If verificarEstado() = False Then
            btnCelda.Enabled = False
        End If
    End Sub

    Private Sub imprimir()
        Dim ds As New DataEMB

        For Each fila As DataGridViewRow In dgvBultos.Rows
            ds.Tables("Bultos").Rows.Add(fila.Cells("Column5").Value, fila.Cells("Column6").Value, fila.Cells("Column7").Value, fila.Cells("Column8").Value, fila.Cells("Column9").Value)
        Next

        For Each fil As DataGridViewRow In dgvLargos.Rows
            ds.Tables("Largos").Rows.Add(fil.Cells("Column1").Value, fil.Cells("Column2").Value, fil.Cells("Column3").Value, fil.Cells("Column4").Value)
        Next

        r.SetParameterValue("@CodigoPedido", txtPedido.Text)
        r.Subreports("subInform1").SetDataSource(ds.Tables("Bultos"))
        r.Subreports("subInform2").SetDataSource(ds.Tables("Largos"))

        r.PrintToPrinter(1, False, 0, 0)
    End Sub

    Private Sub btnImprimir_Click(sender As System.Object, e As System.EventArgs) Handles btnImprimir.Click
        imprimir()
    End Sub

End Class